<?php

class User_Backend_Create_ChangePassword extends Kernel_Action_Form_Simple 
{
    
    /**
     * Таблица, в которой хранится редактируемый элемент.
     *
     * @var string
     */
    protected $_table = 'system_subject';
    
    /**
     * Элементы основной таблицы, которые нужно исключить из формы.
     *
     * @var array
     */
    protected $_exclude = array('email', 'password');
    
    /**
     * Инициализирует элементы формы.
     *
     */
    protected function _initElements()
    {
        parent::_initElements();
        
        $this->_addElement('password1', 'password', array(
            'caption' => 'New password', 
            'required' => true,
            'note' => '8-12 characters',
            'validators' => array('password'),
        ));
        
        $this->_addElement('password2', 'password', array(
            'required' => true 
            ));
    }
    
    /**
     * Обновляет пароль
     *
     */
    protected function _save() 
    {
        $subject_data = User_Utils::getSystemSubjectData(Application::getRequest()->get('id'));
        $values = $this->_getValues();
        
        database::update(
            $this->_table, 
            array('password' => md5($values['password1'])), 
            array('id' => $subject_data['id'])
        );
    }
    
}